import axios from "axios";
import nprogress from "nprogress";
import "nprogress/nprogress.css"
import store from "@/store";


// 封装axios
let requests = axios.create({
    timeout:5000,
})

requests.interceptors.request.use(function (config) {
    // 在发送请求之前做些什么
    // 生成临时游客UUID
    if (store.state.detail.UUID) {
        config.headers.userTempId = store.state.detail.UUID;
    }
    //给服务器传递用户Token
    if(store.state.user.token || localStorage.getItem('TOKEN')){
        config.headers.token = store.state.user.token || localStorage.getItem('TOKEN');
    }

    nprogress.start()
    return config;
}, function (error) {
    // 对请求错误做些什么
    return Promise.reject(error);
});

requests.interceptors.response.use(function (response) {
    // 2xx 范围内的状态码都会触发该函数。
    // 对响应数据做点什么
    nprogress.done()
    return response;
}, function (error) {
    // 超出 2xx 范围的状态码都会触发该函数。
    // 对响应错误做点什么
    return Promise.reject(error);
});

export default requests;